CLEAN CODE [Clean Code] 3. 함수 그리고 코드 리뷰를 진행하며, 함수를 어떤 단위로 쪼갤지... 그럴 경우에는 무리하게 함수를 쪼갤려고 하지 않고 천천히 멀리서 다시 보면서 리팩토링을 하면 더 좋은 구조로 함수가 만들어지는 것 같습니다. "함수는 한 가지를 해야 한다. 그 한 가지만을 해야 한다." 위에서도 언급했듯이 함수는 한 개의 역할만을 수행해야지 명료함을 확실하게 할 수 있습니다. 책에서 말하는 한 가지란 지정된 함수... CLEAN CODECLEAN CODE [개발 도서] Clean Code :: 12장 - 창발성 즉 창발적 설계란 어떤 규칙과 원칙에 따라 설계를 하게 되면, 그것들이 모여 아주 좋은 거시적 설계가 될 수 있음을 말한다. 네가지 규칙을 따르면 코드 구조와 설계를 파악하기 쉬워져 SRP, DIP와 같은 원칙을 적용하기 쉬워지며 우수한 설계의 창발성을 촉진시킬 수 있다. 📗 단순한 설계 규칙 1 - 모든 테스트를 실행한다. 다량의 테스트 케이스를 만들어 원활한 테스트가 가능하게 한다. 다량... CLEAN CODE개발 도서CLEAN CODE 클린 코드 - 냄새와 휴리스틱 좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다. 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 함수, 변수 클래스가 하는 일을 모두 기술하는 이름을 사용한다. 쓸모 없어질 주석은 아예 달지 않는 편이 가장 좋다. 당연한 동작을 구현하지 않으면 코드를 읽거나 사용하는 사람이 더 이상 함수 이름만으로 함수 기능을 직관적으로 예상하... CLEAN CODECLEAN CODE code 작성 rules! console.h console.h console.c console.c kernel.c kernel.c Class 함수 하나에도 여러개로 나눠야한다. SRP 안좋은 예: 하나의 클래스가 너무 많은 역할을 수행한다 책임을 나눠 Manager 클래스에 책임을 전가한다. 안좋은 예:... CLEAN CODECLEAN CODE [개발 도서] Clean Code :: 13장 - 동시성 동시성 : 싱글 코어에서 멀티 스레드를 동작시키기 위한 방식으로 멀티 태스킹을 위해 여러 개의 스레드가 번갈아가면서 실행되는 성질을 말한다. ✔ 스레드가 하나인 경우는 무엇과 언제가 서로 밀접하기 때문에 호출 스택을 살피면 상태를 쉽게 알 수 있다. * 동기화(synchronized) : 임계영역에서 스레드들이 순서를 갖춰 자원을 사용하게 하는 것 / 하나의 스레드가 조작하고 있는 공유자원(... CLEAN CODE개발 도서CLEAN CODE Javascript [CleanCode] “클린코드는 코드를 처음 보는 사람도 동작을 직관적으로 파악할 수 있도록 하는 것을 목표로 합니다. 여기서 코드를 처음 보는 사람은 우리 팀원들, 유지 보수를 할 후임자들, 오픈소스나 API 사용자, 그리고 3달 뒤의 자기 자신 이 있습니다. 우리는 코드를 읽는 것이 아니라, 해석합니다. 조금 과장하자면 가독성 확보는 전체 코딩 업무의 90%에 대한 효율화 작업이라고 할 수 있겠습니다.” 처... CLEAN CODECLEAN CODE Clean Code: 창발성 켄트 벡이 제시한 다음의 단순한 설계 규칙 네 가지가 설계 품질을 크게 높여줄 것이다. 중복을 없앤다. 클래스와 메서드 수를 최소로 줄인다. 시스템이 의도한 대로 돌아가는지 검증할 방법이 있어야 한다. 테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 올라간다. 테스트 케이스를 많이 작성할수록 개발자는 DIP 원칙을 적용하고, 의존성 주입, 인터페이스, 추상화 같은 도구를 사용해 결합도를... CLEAN CODECLEAN CODE Clean Code: 단위 테스트 테스트 코드는 실제 코드만큼, 어쩌면 실제 코드보다 더 중요할 수 있다. 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존 강화한다. 테스트 코드도 클린하게 유지해야 실제 코드가 망가지지 않는다. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 이를 통해 테스트 코드와 실제 코드가 함께 나오고, ... CLEAN CODECLEAN CODE Clean Code: 클래스 변수 목록 다음에는 공개 함수가 나온다. 테스트 코드에서 함수를 호출하거나 변수를 사용해야 한다면 그 함수, 변수를 protected로 선언하거나 패키지 전체로 공개할 수 있다. 하지만 그 전에 비공개 상태를 유지할 방법을 먼저 강구해야 한다. 클래스는 작아야 하고, 더 작을 수록 좋은 클래스다. 여기서 작다는 기준은 클래스가 맡은 책임의 개수로 생각할 수 있다. 이유는 이 클래스가 맡은 책... CLEAN CODECLEAN CODE 클린코드 chap 4. 주석 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하지 말고 개선하는 데 시간을 보내야 한다. 코드로도 의도를 표현할 수 있다. 예제 1. 나쁜 예와 좋은 예 코드의 변화에 따라가지 못하고, 주석은 방치된다. 코드는 컴파일되어 호출되지만 주석은 그저 주석이기 때문에 그 자리에 방치되고 결국 의미없는 텍스트가 되어버리는 경우가 허다하다. ... 클린 코드CLEAN CODE제로베이스CLEAN CODE Python 클린 코드 (1) 어떤 코드 또는 소프트웨어 컴포넌트가 표준을 100% 준수한다해도 클린 코드의 요건을 충족하지 못할 수 있다.(품질, 견고하고 유지보수가 쉽게, 기술 부채 회피) 어노테이션은 Mypy 같은 도구를 사용해 타입 힌트 등의 자동화된 검증을 실행할 수 있다. - 따라서 함수를 수정해야 하는데 함수의 이름과 파라미터의 이름이 충분히 설명되어 있고, 어떤 타입을 사용해야하는지 docstring을 통해... 클린 코드python파이썬 클린 코드CLEAN CODECLEAN CODE 클린 코드 - 5. 형식 맞추기 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 규칙을 정하고 그 규칙에 따라야 한다. 소스 파일도 신문 기사와 비슷하게 작성해야 한다. 패키지 선언부, import 문, 각 함수 사이에 빈 행 하나만 넣더라도 가독성이 크게 증가한다. 서로 밀접한 코드 행들은 세로로 가까이 놓아야 한다. 함수 간의 관계와 동작 방식을 이해하기 위해 여러 파일과, 여러 함수를 ... 클린 코드형식 맞추기CLEAN CODECLEAN CODE 클린코드(Clean Code) 2장 (swift ver.) 위 질문을 주석을 꼭 확인해야 의도를 알 수 있게 하지 않아야한다. 위 코드를 작성한 개발자는 분명 독자가 아래의 정보를 안다고 가정하고 작성했다. 위 개념을 코드에 이름을 붙여서 바꿔보자. 이것이 좋은 이름을 써야하는 이유이다. 작명할때, 같은 개발 환경(같은 언어)에서 개발하는 사람들 뿐만 아니라 다른 개발환경에서 개발하는 사람들을 위해, 프로그래밍에서 보편적으로 널리 쓰이는 이름을 사용... swiftCLEAN CODE클린코드CLEAN CODE
[Clean Code] 3. 함수 그리고 코드 리뷰를 진행하며, 함수를 어떤 단위로 쪼갤지... 그럴 경우에는 무리하게 함수를 쪼갤려고 하지 않고 천천히 멀리서 다시 보면서 리팩토링을 하면 더 좋은 구조로 함수가 만들어지는 것 같습니다. "함수는 한 가지를 해야 한다. 그 한 가지만을 해야 한다." 위에서도 언급했듯이 함수는 한 개의 역할만을 수행해야지 명료함을 확실하게 할 수 있습니다. 책에서 말하는 한 가지란 지정된 함수... CLEAN CODECLEAN CODE [개발 도서] Clean Code :: 12장 - 창발성 즉 창발적 설계란 어떤 규칙과 원칙에 따라 설계를 하게 되면, 그것들이 모여 아주 좋은 거시적 설계가 될 수 있음을 말한다. 네가지 규칙을 따르면 코드 구조와 설계를 파악하기 쉬워져 SRP, DIP와 같은 원칙을 적용하기 쉬워지며 우수한 설계의 창발성을 촉진시킬 수 있다. 📗 단순한 설계 규칙 1 - 모든 테스트를 실행한다. 다량의 테스트 케이스를 만들어 원활한 테스트가 가능하게 한다. 다량... CLEAN CODE개발 도서CLEAN CODE 클린 코드 - 냄새와 휴리스틱 좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다. 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 함수, 변수 클래스가 하는 일을 모두 기술하는 이름을 사용한다. 쓸모 없어질 주석은 아예 달지 않는 편이 가장 좋다. 당연한 동작을 구현하지 않으면 코드를 읽거나 사용하는 사람이 더 이상 함수 이름만으로 함수 기능을 직관적으로 예상하... CLEAN CODECLEAN CODE code 작성 rules! console.h console.h console.c console.c kernel.c kernel.c Class 함수 하나에도 여러개로 나눠야한다. SRP 안좋은 예: 하나의 클래스가 너무 많은 역할을 수행한다 책임을 나눠 Manager 클래스에 책임을 전가한다. 안좋은 예:... CLEAN CODECLEAN CODE [개발 도서] Clean Code :: 13장 - 동시성 동시성 : 싱글 코어에서 멀티 스레드를 동작시키기 위한 방식으로 멀티 태스킹을 위해 여러 개의 스레드가 번갈아가면서 실행되는 성질을 말한다. ✔ 스레드가 하나인 경우는 무엇과 언제가 서로 밀접하기 때문에 호출 스택을 살피면 상태를 쉽게 알 수 있다. * 동기화(synchronized) : 임계영역에서 스레드들이 순서를 갖춰 자원을 사용하게 하는 것 / 하나의 스레드가 조작하고 있는 공유자원(... CLEAN CODE개발 도서CLEAN CODE Javascript [CleanCode] “클린코드는 코드를 처음 보는 사람도 동작을 직관적으로 파악할 수 있도록 하는 것을 목표로 합니다. 여기서 코드를 처음 보는 사람은 우리 팀원들, 유지 보수를 할 후임자들, 오픈소스나 API 사용자, 그리고 3달 뒤의 자기 자신 이 있습니다. 우리는 코드를 읽는 것이 아니라, 해석합니다. 조금 과장하자면 가독성 확보는 전체 코딩 업무의 90%에 대한 효율화 작업이라고 할 수 있겠습니다.” 처... CLEAN CODECLEAN CODE Clean Code: 창발성 켄트 벡이 제시한 다음의 단순한 설계 규칙 네 가지가 설계 품질을 크게 높여줄 것이다. 중복을 없앤다. 클래스와 메서드 수를 최소로 줄인다. 시스템이 의도한 대로 돌아가는지 검증할 방법이 있어야 한다. 테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 올라간다. 테스트 케이스를 많이 작성할수록 개발자는 DIP 원칙을 적용하고, 의존성 주입, 인터페이스, 추상화 같은 도구를 사용해 결합도를... CLEAN CODECLEAN CODE Clean Code: 단위 테스트 테스트 코드는 실제 코드만큼, 어쩌면 실제 코드보다 더 중요할 수 있다. 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존 강화한다. 테스트 코드도 클린하게 유지해야 실제 코드가 망가지지 않는다. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 이를 통해 테스트 코드와 실제 코드가 함께 나오고, ... CLEAN CODECLEAN CODE Clean Code: 클래스 변수 목록 다음에는 공개 함수가 나온다. 테스트 코드에서 함수를 호출하거나 변수를 사용해야 한다면 그 함수, 변수를 protected로 선언하거나 패키지 전체로 공개할 수 있다. 하지만 그 전에 비공개 상태를 유지할 방법을 먼저 강구해야 한다. 클래스는 작아야 하고, 더 작을 수록 좋은 클래스다. 여기서 작다는 기준은 클래스가 맡은 책임의 개수로 생각할 수 있다. 이유는 이 클래스가 맡은 책... CLEAN CODECLEAN CODE 클린코드 chap 4. 주석 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하지 말고 개선하는 데 시간을 보내야 한다. 코드로도 의도를 표현할 수 있다. 예제 1. 나쁜 예와 좋은 예 코드의 변화에 따라가지 못하고, 주석은 방치된다. 코드는 컴파일되어 호출되지만 주석은 그저 주석이기 때문에 그 자리에 방치되고 결국 의미없는 텍스트가 되어버리는 경우가 허다하다. ... 클린 코드CLEAN CODE제로베이스CLEAN CODE Python 클린 코드 (1) 어떤 코드 또는 소프트웨어 컴포넌트가 표준을 100% 준수한다해도 클린 코드의 요건을 충족하지 못할 수 있다.(품질, 견고하고 유지보수가 쉽게, 기술 부채 회피) 어노테이션은 Mypy 같은 도구를 사용해 타입 힌트 등의 자동화된 검증을 실행할 수 있다. - 따라서 함수를 수정해야 하는데 함수의 이름과 파라미터의 이름이 충분히 설명되어 있고, 어떤 타입을 사용해야하는지 docstring을 통해... 클린 코드python파이썬 클린 코드CLEAN CODECLEAN CODE 클린 코드 - 5. 형식 맞추기 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 규칙을 정하고 그 규칙에 따라야 한다. 소스 파일도 신문 기사와 비슷하게 작성해야 한다. 패키지 선언부, import 문, 각 함수 사이에 빈 행 하나만 넣더라도 가독성이 크게 증가한다. 서로 밀접한 코드 행들은 세로로 가까이 놓아야 한다. 함수 간의 관계와 동작 방식을 이해하기 위해 여러 파일과, 여러 함수를 ... 클린 코드형식 맞추기CLEAN CODECLEAN CODE 클린코드(Clean Code) 2장 (swift ver.) 위 질문을 주석을 꼭 확인해야 의도를 알 수 있게 하지 않아야한다. 위 코드를 작성한 개발자는 분명 독자가 아래의 정보를 안다고 가정하고 작성했다. 위 개념을 코드에 이름을 붙여서 바꿔보자. 이것이 좋은 이름을 써야하는 이유이다. 작명할때, 같은 개발 환경(같은 언어)에서 개발하는 사람들 뿐만 아니라 다른 개발환경에서 개발하는 사람들을 위해, 프로그래밍에서 보편적으로 널리 쓰이는 이름을 사용... swiftCLEAN CODE클린코드CLEAN CODE